//
//  CycPlaceholderTextView.swift
//  微博cyc
//
//  Created by cyc on 16/3/11.
//  Copyright © 2016年 cyc. All rights reserved.
//

import UIKit

class CycPlaceholderTextView: UITextView {
    //8-12-3
    //MARK: -属性
    ///占位文本
    var placeholde:String?{
        didSet {
            placeholderlabel.text = placeholde
            placeholderlabel.sizeToFit()
            placeholderlabel.font=self.font!
        }
    }
    //8-13-1第二种方法在文本
    override init(frame: CGRect, textContainer: NSTextContainer?) {
        super.init(frame: frame, textContainer: textContainer)
        //通过代理来监听文字的改变
        // self.delegate = self
        
        // 不要通过代理来监听文字的改变,有可能在外面被别人用代理覆盖了
        //        self.delegate = self
        
        // 使用通知.一对多.不会被覆盖
        
        // object: 通知的发送者
        // object: nil只要发送这个通知就能监听到,不管是谁发送的
        // object: 填对象,只有这个对象发出的指定通知才能监听到
        NSNotificationCenter.defaultCenter().addObserver(self, selector: "textViewDidChaged", name: UITextViewTextDidChangeNotification, object: self)
    }
    // 对象销毁的时候调用
    deinit {
        // 移除监听,野指针
        NSNotificationCenter.defaultCenter().removeObserver(self)
    }
    
    
    func textViewDidChaged() {
        //        print("textView\(text)")
        //        print("textView.hasText\(hasText())")
        
        // 有文字的时候隐藏
        placeholderlabel.hidden = hasText()
    }


    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    // MARK: 懒加载
     lazy var placeholderlabel:UILabel = {
        // 添加占位文本
        let label = UILabel()
    
        self.addSubview(label)
        //placehoderlabel.text="分享新鲜事。。。。。。。。"
        label.font=self.font!
        
        label.textColor=UIColor.lightGrayColor()
        label.sizeToFit()
        //使用系统约束
        label.translatesAutoresizingMaskIntoConstraints=false
        //tv.backgroundColor=UIColor.redColor()
        self.addConstraint(NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 5))
        self.addConstraint(NSLayoutConstraint(item: label, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.Top, multiplier: 1, constant: 8))
     return label
        
    }()

    }
// 实现代理
//extension CycPlaceholderTextView:UITextViewDelegate{
//    func textViewDidChange(textView: UITextView) {
//        print("textview:\(textView.text)")
//        print("textview.hasText:\(textView.hasText())")
//        
//    }
//}